/**
 * @file 百度地图配置文件
 * @description 配置百度地图相关的API KEY和默认选项
 * @date 2024-08-13 (更新)
 */
// @ts-ignore - uni-app环境下Vue导入需要忽略类型检查
import { ref } from 'vue'

// 获取环境变量中的百度地图AK
const BAIDU_MAP_AK = import.meta.env.VITE_BAIDU_MAP_AK as string

// 检查AK是否存在
if (!BAIDU_MAP_AK) {
  console.error('百度地图AK未配置，请在.env文件中设置VITE_BAIDU_MAP_AK')
}

/**
 * 百度地图配置
 */
export const BAIDU_MAP_CONFIG = {
  // API配置
  api: {
    // 百度地图API Key
    ak: BAIDU_MAP_AK,
    // API版本
    version: '1.0',
    // API类型 (webgl=3D, 不带参数=2D)
    type: 'webgl',
    // 重试次数
    retries: 3,
    // 重试延迟(ms)
    retryDelay: 1000,
    // 加载超时时间(ms)
    timeout: 15000,
    // 是否自动重试
    autoRetry: true,
    // 自动加载相关插件
    autoLoadPlugins: {
      // 轨迹插件
      track: true,
      // 热力图插件
      heatmap: false,
      // 标注聚合插件
      markerClusterer: false
    },
    // 按路由加载
    routeBasedLoading: true
  },
  
  // 默认中心点
  defaultCenter: {
    lng: 116.404,
    lat: 39.915
  },
  
  // 默认配置选项
  defaultOptions: {
    // 缩放级别相关
    zoom: 15,
    minZoom: 4,
    maxZoom: 19,
    
    // 操作相关
    enableScrollWheelZoom: true,
    enableDragging: true,
    enableDoubleClickZoom: true,
    enableInertialDragging: true,
    enableContinuousZoom: true,
    
    // 地图类型
    defaultType: 'normal', // 'normal', 'satellite', 'hybrid'
    
    // 默认是否显示控件
    controls: {
      navigation: true,
      scale: true,
      zoom: true,
      mapType: false,
      copyright: false,
      cityList: false,
      panorama: false
    }
  },
  
  // 自定义配置
  custom: {
    // 是否在非地图页面预加载地图资源
    preload: false,
    // 是否懒加载地图资源
    lazyLoad: false,
    // 缓存策略
    cache: {
      // 是否启用本地缓存
      enable: true,
      // 缓存有效期(毫秒)
      ttl: 30 * 60 * 1000 // 30分钟
    }
  }
}

/**
 * 可响应的地图配置
 */
export const mapConfig = {
  // 地图类型
  mapType: ref<'normal' | 'satellite' | 'hybrid'>('normal'),
  // 缩放级别
  zoom: ref(BAIDU_MAP_CONFIG.defaultOptions.zoom),
  // 是否启用3D视图
  enable3D: ref(true)
}

/**
 * 坐标类型
 */
export const COORD_TYPE = import.meta.env.VITE_MAP_COORD_TYPE || 'bd09ll';

/**
 * 是否开启地图调试模式
 */
export const MAP_DEBUG = import.meta.env.NODE_ENV === 'development';

// 坐标系配置
export const COORDINATE_SYSTEM = {
  type: 'bd09ll', // 百度经纬度坐标系
  proj4def: '+proj=longlat +datum=BD09'
};

// 地图覆盖物样式配置
export const OVERLAY_STYLES = {
  // 轨迹线样式
  trackLine: {
    strokeColor: '#2979ff',
    strokeWeight: 4,
    strokeOpacity: 0.8
  },
  
  // 起点标记样式
  startMarker: {
    icon: '/static/images/start.png',
    size: [32, 32],
    anchor: [16, 16]
  },
  
  // 终点标记样式
  endMarker: {
    icon: '/static/images/end.png',
    size: [32, 32],
    anchor: [16, 16]
  },
  
  // 当前位置标记样式
  locationMarker: {
    icon: '/static/images/location.png',
    size: [32, 32],
    anchor: [16, 16]
  }
}; 